package com.moyu.myadmin.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.moyu.myadmin.model.vo.*;
import com.moyu.myadmin.utils.ResultData;

import java.util.List;


/**
 * 流程操作相关接口
 */
public interface ProcessService {

    /**
     * 查询我的代办
     * @return 代办的流程信息
     */
    Page<TaskVO> queryListPage();

    /**
     * 查询流程图
     * @param processDefinitionId 流程定义id
     * @return 流程图
     */
    String getProcessModel(String processDefinitionId);

    /**
     * 获取流程审批记录
     * @param processInstanceId 流程实例id
     */
    List<TaskCommentVO> getTaskComment(String processInstanceId);

    /**
     * 获取流程高亮节点
     * @param processInstanceId 流程实例id
     */
    ActivityHighLineVO getHighLightedFlows(String processInstanceId);

    /**
     * 查询流程信息
     * @param processInstanceId 流程实例id
     * @param processDefinitionId 流程定义id
     * @return 流程信息
     */
    ProcessInfoVO getProcessInfo(String processInstanceId, String processDefinitionId);

    /**
     * 审批流程
     * @param completeTaskVO 审批信息
     */
    void completeTask(CompleteTaskVO completeTaskVO);

    /**
     * 查询流程历史
     * @param historyProcess 流程历史
     * @return 流程历史
     */
    Page<HistoricProcessVO> queryHistoryProcess(HistoricProcessVO historyProcess);

    /**
     * 流程历史退回
     * @param backProcess 历史退回信息
     */
    void backProcess(BackProcessVO backProcess);

}
